home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / Sherlock 2.0 / DevLibSrc / Mac DevLib / mac_dialog_util.c < prev    next >
Text File  |  1995-09-25  |  3KB  |  141 lines

  1. /*
  2.     devlib: dialog utility routines.
  3.         
  4.     source:  mac_dialog_util.c
  5.     started: November 30, 1990.
  6.     version:
  7.         September 25, 1995:
  8.             Changed qd.white to &qd.white.
  9.             Changed qd.black to &qd.black.
  10. */
  11.  
  12. #include <LIBlib.h>
  13.  
  14. #include <LIBdialog.h>
  15.  
  16. #include <Quickdraw.h>
  17.  
  18. #define slot1 1        /* Dialog item 1 */
  19. #define slot2 2        /* Dialog item 2 */
  20.  
  21. /*
  22.     Center the indicated rectangle on the screen.
  23.     
  24.     Warning:      this code assumes the width of the dialog
  25.                 is less than the width of the screen.
  26.                 The dialog will "disappear" if this is not so.
  27. */
  28. #define b (qd.screenBits.bounds)
  29.  
  30. /*
  31.     Center a dialog on the screen.
  32. */
  33. void
  34. center_dialog(DialogPtr dp)
  35. {
  36.     Rect r;
  37.  
  38.     r.top    = dp -> portRect.top;
  39.     r.left   = dp -> portRect.left;
  40.     r.bottom = dp -> portRect.bottom;
  41.     r.right  = dp -> portRect.right;
  42.     
  43.     r.top = ((b.bottom - b.top) - (r.bottom - r.top)) / 2;
  44.     r.left    = ((b.right - b.left) - (r.right - r.left)) / 2;
  45.         
  46.     MoveWindow(dp, r.left, r.top, TRUE);
  47. }
  48.  
  49. #undef b
  50.  
  51. /*
  52.     Return the value of the indicated dialog item.
  53.     5/30/91: item changed to short.
  54. */
  55. int
  56. getControl(DialogPtr dp, short item)
  57. {
  58.     Rect            tempRect;
  59.     short            DType;
  60.     Handle            DItem;
  61.     
  62.     GetDItem(dp, item, &DType, &DItem, &tempRect);
  63.     return GetCtlValue((ControlHandle) DItem);
  64. }
  65.  
  66. /*
  67.     Hilite the default button in slot 1.
  68. */
  69. void
  70. hiliteButton(DialogPtr dp) 
  71.     Rect    tempRect;
  72.     short    DType;
  73.     Handle    DItem;
  74.  
  75.     GetDItem(dp, slot1, &DType, &DItem, &tempRect);
  76.     PenSize(3, 3);
  77.     InsetRect(&tempRect, -4, -4);
  78.     FrameRoundRect(&tempRect, 16, 16); 
  79.     PenSize(1, 1); 
  80. }
  81.  
  82. /*
  83.     Hilite the default button in slot 1 and unhilite the button in slot 2.
  84. */
  85. void
  86. hilite2Buttons(DialogPtr dp) 
  87.     Rect    tempRect;
  88.     short    DType;
  89.     Handle    DItem;
  90.  
  91.     /* Highlight the item in the first slot. */
  92.     GetDItem(dp, slot1, &DType, &DItem, &tempRect);
  93.     PenPat(&qd.black);
  94.     PenSize(3, 3);
  95.     InsetRect(&tempRect, -4, -4);
  96.     FrameRoundRect(&tempRect, 16, 16); 
  97.     PenSize(1, 1);
  98.     
  99.     /* Unhighlight the item in the second slot. */
  100.     GetDItem(dp, slot2, &DType, &DItem, &tempRect);
  101.     PenPat(&qd.white);
  102.     PenSize(3, 3);
  103.     InsetRect(&tempRect, -4, -4);
  104.     FrameRoundRect(&tempRect, 16, 16); 
  105.     PenSize(1, 1);
  106.     PenPat(&qd.black);
  107. }
  108.         
  109. /*
  110.     Hilight or UnHilight the indicated control item.
  111.     
  112.     WARNING:  Static text and Edit text are NOT, repeat NOT, controls.
  113.               The program will crash if you try to "unhilite" these!!
  114. */
  115. void
  116. hiliteControl(DialogPtr dp, short item, int value)
  117. {
  118.     Rect            tempRect;
  119.     short            DType;
  120.     Handle            DItem;
  121.  
  122.     GetDItem(dp, item, &DType, &DItem, &tempRect);
  123.     HiliteControl((ControlHandle) DItem, value);
  124. }
  125.  
  126. /*
  127.     Set the indicated item to the indicated value.
  128. */
  129. void
  130. setControl(DialogPtr dp, short item, int value)
  131. {
  132.     Rect            tempRect;
  133.     short            DType;
  134.     Handle            DItem;
  135.     
  136.     GetDItem(dp, item, &DType, &DItem, &tempRect);
  137.     SetCtlValue((ControlHandle) DItem, value);
  138. }
  139.